###############################################################################
#                                                                             #
#    L3q - Light, light, lightweight queue                                    #
#    Copyright (C) 2023  Marcus Pedersén marcus.pedersen@slu.se               #
#                                                                             #
#    This program is free software: you can redistribute it and/or modify     #
#    it under the terms of the GNU General Public License as published by     #
#    the Free Software Foundation, either version 3 of the License, or        #
#    (at your option) any later version.                                      #
#                                                                             #
#    This program is distributed in the hope that it will be useful,          #
#    but WITHOUT ANY WARRANTY; without even the implied warranty of           #
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
#    GNU General Public License for more details.                             #
#                                                                             #
#    You should have received a copy of the GNU General Public License        #
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.    #
#                                                                             #
###############################################################################




'''
Module contains common classes
and functions for l3q,
required by both daemon and client programs.
'''


class L3QAction:
    '''
    Class that represent all actions
    that can be sent to l3q daemon
    and actions supported by daemon.
    '''
    ADD_PARA = 'ADD_PARA'
    ADD_SEQ = 'ADD_SEQ'
    CANCEL_JOB = 'CANCEL_JOB'
    GET_QUEUE = 'GET_QUEUE'
    GET_JOB_INFO = 'GET_JOB_INFO'
    GET_TASK_LIST = 'GET_TASK_LIST'
    GET_TASK_INFO = 'GET_TASK_INFO'
    GET_HISTORY = 'GET_HISTORY'
    GET_NODE_STATUS = 'GET_NODE_STATUS'
    VALIDATE_KEY = 'VALIDATE_KEY'
    ADD_NODE = 'ADD_NODE'
    REMOVE_NODE = 'REMOVE_NODE'
    SET_NODE_OFFLINE = 'SET_NODE_OFFLINE'
    SET_NODE_ONLINE = 'SET_NODE_ONLINE'



